package club.emergency.wechat.aliyun_sms;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.Map;

/**
 * Create with IntelliJ IDEA
 * Project Name: wechat
 * Package Name: club.emergency.wechat.aliyun_sms
 * Date: 2018/11/13
 *
 * @author: 快乐的小菌菌
 * Description: 发送短信验证码接口
 */
public interface SendMessage {

    /**
     * 发送短信接口，调用者需要自己根据参数列表调用。
     *
     * @param phoneNumber 需要发送的手机号
     * @param paramMap    构造发送param的json串
     * @return ResponseProviderEntity以字符串形式返回
     */
    @PostMapping("/aliyun-sms-provider/sendSms")
    String sendSms(@RequestParam("phoneNumber") String phoneNumber, @RequestBody Map<String, Object> paramMap);

    /**
     * 发送短信验证接口，调用者需要自己根据参数列表调用。存入redis并设置5分钟内有效
     *
     * @param phoneNumber 需要发送的手机号
     * @return ResponseProviderEntity以字符串形式返回
     */
    @PostMapping("/aliyun-sms-provider/sendVerificationSms")
    String sendVerificationSms(@RequestParam("phoneNumber") String phoneNumber);

    /**
     * 验证手机对应的验证码是否正确
     *
     * @param phoneNumber 需要验证的手机号
     * @param confirmCode 用户输入的验证码
     * @return ResponseProviderEntity以字符串形式返回
     */
    @PostMapping("/aliyun-sms-provider/confirmVerification")
    String confirmVerification(@RequestParam("phoneNumber") String phoneNumber, @RequestParam("confirmCode") String confirmCode);
}
